error dial tcp 127.0.0.1:3306: connect: connection refused |
您所在的位置:网站首页 › page 1 of 0 con 0 开始报错 › error dial tcp 127.0.0.1:3306: connect: connection refused |
项目场景:
项目场景:微服务项目中使用consul作为配置中心存储mysql配置,获取配置后使用gorm连接mysql数据库时出现错误。 问题描述error dial tcp 127.0.0.1:3306: connect: connection refused // get mysql config from consul mysqlInfo := common.GetMysqlFromConsul(consulConfig, "mysql") db, err := gorm.Open("mysql", mysqlInfo.User+":"+mysqlInfo.Pwd+"@/"+mysqlInfo.Database+"?charset=utf8&parseTime=True&loc=Local") if err != nil { log.Error(err) } 原因分析:consul中mysql配置如图:
启动mysql容器实例后使用docker命令查看正在运行的容器: docker ps一般出现error dial tcp 127.0.0.1:3306: connect: connection refused,有两种情况: 第一种情况如果地址是正确的,那么就是mysql没有启动,但是通过查看正在运行的容器,发现mysql是已经启动并且正在运行了,所以不是这种情况。 第二种情况就是地址错误了,通过查看mysql容器实例所暴露出来的端口为3360,而consul中mysql配置的端口为3306。 解决方案:在docker启动mysql容器实例时使用的命令指定端口映射为3360,而配置中心mysql配置为3306,自然就会出错了。 使用docker命令停止mysql容器: docker stop mysql容器实例id使用docker命令启动mysql容器,指定端口映射为3306: docker run -p 3306:3306 -v $pwd/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6容器启动后再次运行项目,问题就解决了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |